TurboCapture-Seq Brain Cancer neurospheres

Recap

These are the first experiments where I use version 2 chemistry. Read 2 is now the barcode and UMI Read 1 is the cDNA. This was done to avoid reading through the TSO on Ilumina read 1

Test version 2 protocol with a biological appliation from Zac Moore of Brain Cancer lab https://au-mynotebook.labarchives.com/share/Piper_Research_Project/MzEuMjAwMDAwMDAwMDAwMDAzfDE3MTc2NS8yNC9UcmVlTm9kZS8zMzczNDM0NjE1fDc5LjE5OTk5OTk5OTk5OTk5

Read SCE and extract col data

This is the SCE object from single end umi

sce <- readRDS(here::here(
  "data/TIRE_brain_human/SCEs/", "brainCancer_basic.sce.rds"))

tb <- as_tibble(colData(sce))

tb$Species[is.na(tb$Cell_Line)] <- "None"
tb$Cell_Line[is.na(tb$Cell_Line)] <- "None"

Check orientation on plate map representation

Orientation is correct when looking at library size and mouse counts.

Samples

p1 <- platetools::raw_map(data=tb$Cell_Line, 
                     well=tb$Well, 
                     plate=96) + scale_fill_Publication()

p2 <- platetools::raw_map(data=log(tb$sum+1), 
                     well=tb$Well, 
                     plate=96) +
  ggtitle("Library Size")


p3 <- platetools::raw_map(data=tb$Day_Exposure, 
                     well=tb$Well, 
                     plate=96) + 
  ggtitle("Days exposure to drug")

p4 <- platetools::raw_map(data=tb$Storage, 
                     well=tb$Well, 
                     plate=96) + 
  ggtitle("Storage conditions") + scale_fill_Publication()

p1 + p2 + p3 + p4

Conditions

tb_fact <- tb 
tb_fact$Day_Exposure <- as.factor(tb$Day_Exposure)
tb_fact$Dose_M <- as.factor(tb$Dose_M)

p1 <- platetools::raw_map(data=tb_fact$Species, 
                     well=tb$Well, 
                     plate=96) + 
  scale_fill_discrete("Species")

p2 <- platetools::raw_map(data=tb_fact$Day_Exposure, 
                     well=tb$Well, 
                     plate=96) +
  scale_fill_discrete("Timepoint (days)")

p3 <- platetools::raw_map(data=tb_fact$Dose_M, 
                     well=tb$Well, 
                     plate=96) + 
  guides(fill=guide_legend(ncol=2)) +
  scale_fill_discrete("Dose (M)")

p4 <- platetools::raw_map(data=tb_fact$Drug, 
                     well=tb$Well, 
                     plate=96) + 
  scale_fill_discrete("Drug")

p1 + p4 + p3 + p2

Quality control metrics by dose

The metrics go as one would expect with dose and time treated

Library size

tb$Day_Exposure <- as_factor(tb$Day_Exposure)

plt1 <- ggplot(tb,
             aes(x = Dose_M, y= sum, colour=Day_Exposure)) + 
  geom_point() +
  ylab("Library Size (UMIs)") + 
  xlab("TMZ (M)") +
  scale_y_continuous(trans='log10') + scale_x_continuous(trans='log10') +
  annotation_logticks(base = 10, sides = "bl") +
  scale_colour_brewer(palette = "Dark2")

plt1

Genes detected

plt2 <- ggplot(tb,
             aes(x = Dose_M, y= detected, colour=Day_Exposure)) + 
  geom_point() +
  xlab("TMZ (M)") +
  ylab("Genes detected") + 
  scale_x_continuous(trans='log10') +
  annotation_logticks(base = 10, sides = "b") +
  scale_colour_brewer(palette = "Dark2")

plt2

Mitochondrial percent

plt2 <- ggplot(tb,
             aes(x = Dose_M, y= subsets_Mito_percent, colour=Day_Exposure)) + 
  geom_point() +
  xlab("TMZ (M)") +
  ylab("Mitochondrial percent") + 
  scale_x_continuous(trans='log10') +
  annotation_logticks(base = 10, sides = "b") +
  scale_colour_brewer(palette = "Dark2")

plt2

Investigate storage conditions

Evidence that storage at 4C is insufficient to freeze the biological effect of temozolomide on the library size. In general metrics are poorer for storage at 4C.

storage <- tb %>% 
  filter(Day_Exposure == 7) %>% 
  filter(Dose_M != 0.0000001) %>% 
  filter(Dose_M != 0.000001) %>% 
  filter(Dose_M != 0.00000316) %>% 
  filter(Dose_M != 0.000000316) %>% 
  filter(Dose_M != 0.0000316)
  
storage %>% 
  dplyr::count(Dose_M,Storage)

Library size

plt1 <- ggplot(storage,
             aes(x = Storage, y= sum, colour=Drug)) + 
  geom_jitter(width = 0.1) + 
  ylab("Library Size (UMIs)") + 
  xlab("Storage") +
  scale_y_continuous(trans='log10') +
  annotation_logticks(base = 10, sides = "l") +
  scale_colour_brewer(palette = "Dark2")

plt1

Genes detected

plt2 <- ggplot(storage,
             aes(x = Storage, y= detected, colour=Drug)) + 
  geom_jitter(width = 0.1) + 
  ylab("Genes detected") + 
  xlab("Storage") +
  scale_colour_brewer(palette = "Dark2")

plt2

Mitochondrial percent

Further evidence that 4C storage does not inactivate Temozolomide effects.

plt3 <- ggplot(storage,
             aes(x = Storage, y= subsets_Mito_percent, colour=Drug)) + 
  geom_jitter(width = 0.1) + 
  ylab("Mitochondrial %") + ylim(0,15) +
  xlab("Storage") +
  scale_colour_brewer(palette = "Dark2")

plt3

Session info

sessionInfo()
## R version 4.4.0 (2024-04-24)
## Platform: x86_64-pc-linux-gnu
## Running under: CentOS Linux 7 (Core)
## 
## Matrix products: default
## BLAS:   /stornext/System/data/apps/R/R-4.4.0/lib64/R/lib/libRblas.so 
## LAPACK: /stornext/System/data/apps/R/R-4.4.0/lib64/R/lib/libRlapack.so;  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: Australia/Melbourne
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] grid      stats4    stats     graphics  grDevices utils     datasets 
## [8] methods   base     
## 
## other attached packages:
##  [1] scales_1.3.0                ggthemes_5.1.0             
##  [3] here_1.0.1                  patchwork_1.2.0            
##  [5] platetools_0.1.7            scater_1.32.0              
##  [7] scuttle_1.14.0              lubridate_1.9.3            
##  [9] forcats_1.0.0               stringr_1.5.1              
## [11] dplyr_1.1.4                 purrr_1.0.2                
## [13] readr_2.1.5                 tidyr_1.3.1                
## [15] tibble_3.2.1                ggplot2_3.5.1              
## [17] tidyverse_2.0.0             SingleCellExperiment_1.26.0
## [19] SummarizedExperiment_1.34.0 Biobase_2.64.0             
## [21] GenomicRanges_1.56.0        GenomeInfoDb_1.40.0        
## [23] IRanges_2.38.0              S4Vectors_0.42.0           
## [25] BiocGenerics_0.50.0         MatrixGenerics_1.16.0      
## [27] matrixStats_1.3.0          
## 
## loaded via a namespace (and not attached):
##  [1] tidyselect_1.2.1          viridisLite_0.4.2        
##  [3] farver_2.1.2              vipor_0.4.7              
##  [5] viridis_0.6.5             fastmap_1.2.0            
##  [7] digest_0.6.35             rsvd_1.0.5               
##  [9] timechange_0.3.0          lifecycle_1.0.4          
## [11] magrittr_2.0.3            compiler_4.4.0           
## [13] rlang_1.1.3               sass_0.4.9               
## [15] tools_4.4.0               utf8_1.2.4               
## [17] yaml_2.3.8                knitr_1.46               
## [19] labeling_0.4.3            S4Arrays_1.4.0           
## [21] DelayedArray_0.30.1       RColorBrewer_1.1-3       
## [23] abind_1.4-5               BiocParallel_1.38.0      
## [25] withr_3.0.0               fansi_1.0.6              
## [27] beachmat_2.20.0           colorspace_2.1-0         
## [29] cli_3.6.2                 rmarkdown_2.26           
## [31] crayon_1.5.2              generics_0.1.3           
## [33] rstudioapi_0.16.0         httr_1.4.7               
## [35] tzdb_0.4.0                DelayedMatrixStats_1.26.0
## [37] ggbeeswarm_0.7.2          cachem_1.1.0             
## [39] zlibbioc_1.50.0           parallel_4.4.0           
## [41] XVector_0.44.0            vctrs_0.6.5              
## [43] Matrix_1.7-0              jsonlite_1.8.8           
## [45] BiocSingular_1.20.0       hms_1.1.3                
## [47] BiocNeighbors_1.22.0      ggrepel_0.9.5            
## [49] irlba_2.3.5.1             beeswarm_0.4.0           
## [51] jquerylib_0.1.4           glue_1.7.0               
## [53] codetools_0.2-20          stringi_1.8.4            
## [55] gtable_0.3.5              UCSC.utils_1.0.0         
## [57] ScaledMatrix_1.12.0       munsell_0.5.1            
## [59] pillar_1.9.0              htmltools_0.5.8.1        
## [61] GenomeInfoDbData_1.2.12   R6_2.5.1                 
## [63] sparseMatrixStats_1.16.0  rprojroot_2.0.4          
## [65] evaluate_0.23             lattice_0.22-6           
## [67] highr_0.10                bslib_0.7.0              
## [69] Rcpp_1.0.12               gridExtra_2.3            
## [71] SparseArray_1.4.3         xfun_0.44                
## [73] pkgconfig_2.0.3